﻿// MaPhotosEntryCtrl
ctrls.controller('MaPhotosEntryCtrl', function ($scope, $http, $routeParams, $location, $modal) {
    /* Định nghĩa biến toàn cục */
    $scope.data = {};
    $scope.strings = {};
    $scope.style = {};
    $scope.variable = {};
    // Gán giá trị init
    $scope.variable.InitFinish = true;
    $scope.variable.IsEdit = $routeParams.Status === 'edit';
    $scope.variable.IsCategoryDivOther = false;
    $scope.variable.Status = basicInfos.status[$routeParams.Status];
    $scope.variable.CallType = basicInfos.callType[$routeParams.CallType];
    $scope.variable.PhotoCd = $routeParams.PhotoCd;
    /* Định nghĩa phương thức xử lý */
    // Xử lý lấy chuỗi resource
    $scope.getStrings = function () {
        $pc(function () {
            $scope.strings = {
                Title: $nm('ADM.MA.PHOTOS.ENTRY.Title'),
                PhotoCd: $nm('ADM.MA.PHOTOS.ENTRY.PhotoCd'),
                PhotoName: $nm('ADM.MA.PHOTOS.ENTRY.PhotoName'),
                SortKey: $nm('ADM.MA.PHOTOS.ENTRY.SortKey'),
                DeleteFlag: $nm('ADM.MA.PHOTOS.ENTRY.DeleteFlag'),
                Save: $nm('ADM.MA.PHOTOS.ENTRY.Save'),
                List: $nm('ADM.MA.PHOTOS.ENTRY.List'),
                Upload: $nm('ADM.MA.PHOTOS.ENTRY.Upload'),
                Update: $nm('ADM.MA.PHOTOS.ENTRY.Update')
            };
        });
    };
    // Xử lý init
    $scope.init = function () {
        $pc({
            http: $http,
            url: '/ajx/adm/ma/photos/entry.aspx/InitLayout',
            data: function () {
                var data = {};
                // Gán thông tin tham số
                data.Status = $scope.variable.Status;
                data.CallType = $scope.variable.CallType;
                data.PhotoCd = $scope.variable.PhotoCd;
                // Kết quả trả về
                return data;
            },
            success: function (data) {
                if (!$dataHelper.toBoolean(data.HasAuth)) {
                    window.location = '/adm/login.html';
                    return;
                }
                $scope.data = data;
                if (!$scope.variable.IsEdit) {
                    $ti('txtPhotoCd');
                } else {
                    $ti('txtPhotoName');
                }
            },
            error: function (err) {
                $scope.variable.InitFinish = false;
                $scope.alert = err;
            }
        });
    };
    // Xử lý back
    $scope.gotoList = function () {
        $pc(function () {
            $location.path('/adm/master/photos/list');
        });
    };

    // Xử lý save
    $scope.save = function () {
        $pc({
            http: $http,
            url: '/ajx/adm/ma/photos/entry.aspx/Save',
            data: function () {
                var data = {};
                // Gán dữ liệu cập nhật
                data.Status = $scope.variable.Status;
                data.CallType = $scope.variable.CallType;
                data.DataLocaleBase = $scope.data.DataLocaleBase;
                data.DataLocaleBase.PhotoSearchName = $dataHelper.toSearchName($scope.data.DataLocaleBase.PhotoName);
                // Kết quả trả về
                return data;
            },
            validate: function (data) {
                return {
                    txtPhotoCd: {
                        data: data.DataLocaleBase.PhotoCd,
                        rules: ['required', 'chkcode'],
                        messageParam: 'ADM.MA.PHOTOS.ENTRY.PhotoCd'
                    },
                    txtPhotoName: {
                        data: data.DataLocaleBase.PhotoName,
                        rules: ['required', 'chkname'],
                        messageParam: 'ADM.MA.PHOTOS.ENTRY.PhotoName'
                    }
                };
            },
            success: function (data) {
                $scope.gotoList();
            },
            error: function (err) {
                $scope.alert = err;
            }
        });
    };
    // Xử lý đăng ảnh
    $scope.uploadFile = function () {
        var modalInstance = $modal.open({
            templateUrl: '/cts/com/ucs/html/upload.html',
            controller: 'UploadCtrl',
            resolve: {
                param: function () {
                    return {
                        Code: 'file-cd',
                        LocaleCd: $pageHelper.getLang(),
                        FileCd: $scope.data.DataLocaleBase.FileCd,
                        FileGroup: 'ma.photos.file-cd'
                    };
                }
            }
        });
    };

    /* Định nghĩa các events */
    // Tiến hành lấy chuỗi resource
    $scope.getStrings();
    // Tiến hành xử lý init
    $scope.init();

    /* Đăng ký các events */
});